package com.atguigu.gulimall.product;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;

@EnableRedisHttpSession    //开启 SpringSession 功能, 整合 redis 作为 session 存储
@EnableCaching    //开启缓存功能
@EnableFeignClients(basePackages = "com.atguigu.gulimall.product.feign")    //指定feign的位置
@EnableDiscoveryClient    //开启服务发现功能
@SpringBootApplication
@MapperScan("com.atguigu.gulimall.product.dao")
public class GulimallProductApplication {
    public static void main(String[] args) {
        SpringApplication.run(GulimallProductApplication.class, args);
    }}


/**
 * 1）、调用方的熔断保护开启 feign.sentinel.enabled=true
 * 2）、调用方手动指定远程服务的降级策略。远程服务被降级处理，触发我们的熔断回调方法
 * 3）、超大浏览的时候，必须牺牲一些远程服务。在服务的提供方（远程服务）指定降级策略;
 *     提供方还能运行。但是不运行自己的业务逻辑。返回的是默认的降级数据（限流的数据）
 */
